from torch.utils.data import Dataset
from GetDataFromArff import ArffDataProcessor
from torch.utils.data import DataLoader

class ArffDataset(Dataset):
    def __init__(self, dataProcessor:ArffDataProcessor,maxLenth,paddingValue):
        """
        初始化 Dataset 类。
        :param dataProcessor: ArffDataProcessor 类的实例，用于加载和处理数据。
        """
        self.dataProcessor = dataProcessor
        self.samples, self.labels, self.masks = self.dataProcessor.getAllData(maxLenth, paddingValue)

    def __len__(self):
        """
        返回数据集中样本的数量。
        """
        return len(self.samples)

    def __getitem__(self, idx):
        """
        根据索引 idx 获取数据集中的样本。
        :param idx: 要获取的样本的索引。
        :return: 样本数据，标签，掩码。
        """
        sample = self.samples[idx]
        label = self.labels[idx]
        mask = self.masks[idx]
        return sample, label, mask
#构建Dataloader示例：
#